// https://leetcode-cn.com/problems/maximum-product-subarray/
// 152. 乘积最大子数组
// 给定一个整数数组 nums，请找出数组中乘积最大的非空连续子数组，并返回该子数组的乘积。
// 子数组是数组的连续子序列
function maxProduct(nums: number[]): number {
    let maxF = nums[0];
    let minF = nums[0];
    let ans = nums[0];

    for (let i = 1; i < nums.length; i++) {
        const mx = maxF;
        const mn = minF;
        const a = mx * nums[i];
        const b = mn * nums[i];
        maxF = Math.max(a, b, nums[i]);
        minF = Math.min(a, b, nums[i]);

        ans = Math.max(maxF, ans);
    }

    return ans;
}
